Big O нотация в Swift

Что такое Big O нотация?

Обозначение Big O нотация (или просто Big O) — это способ оценки относительной производительности структуры данных или алгоритма, обычно по двум осям: времени и пространству.

Доминирующие операции

Способ, которым мы определяем Big O алгоритмов, заключается в том, чтобы посмотреть на худшую производительность в его доминирующих операциях.

Постоянное время — O(1)

func constantTime(_ n: Int) -> Int {     let result = n * n     return result }

Алгоритмы, без цикла(например: for-in) или алгоритмы которые просто возвращают результат какого-то простого вычисления, имеют «постоянное время» или «O(1)». Это означает, что эти операции очень быстрые.

Линейное время — O(n)

func linearTime(_ A: [Int]) -> Int {     for i in 0..<A.count {         if A[i] == 0 {             return 0         }     }     return 1 }

Как только производительность алгоритма становится зависимой от размера

Читать далее